package com.dragon.modules.yuegou.entity.order;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 单品（只有需要自提的商品才拆成单品）实体类<br>
 * 对应的表为：ord_goods<br>
 * 
 * @author pbuilder generated
 * @date 2020-07-08 15:47:11
 * @company sgy
 * @version 2.0
 */
@TableName("ord_goods")
@ApiModel(description = "单品（只有需要自提的商品才拆成单品）")
public class GoodsEntity {

    /** 单品ID */
	@ApiModelProperty("单品ID")
	protected String id;

    /** 订单号 */
	@ApiModelProperty("订单号")
	protected String orderNo;

    /** SPUID */
	@ApiModelProperty("SPUID")
	protected String spuId;

    /** 商品ID */
	@ApiModelProperty("商品ID")
	protected String skuId;

    /** 商品名 */
	@ApiModelProperty("商品名")
	protected String skuTitle;

    /** 商品单价 */
	@ApiModelProperty("商品单价")
	protected BigDecimal skuPrice;

    /** 原价 */
	@ApiModelProperty("原价")
	protected BigDecimal skuOriginalPrice;

    /** 折扣价（用这个价格计算） */
	@ApiModelProperty("折扣价（用这个价格计算）")
	protected BigDecimal skuDiscountPrice;

    /** 优惠金额 */
	@ApiModelProperty("优惠金额")
	protected BigDecimal discountAmount;

    /** 商户分摊金额 */
	@ApiModelProperty("商户分摊金额")
	protected BigDecimal merchantDivideFee;

    /** 平台分摊金额 */
	@ApiModelProperty("平台分摊金额")
	protected BigDecimal groupDivideFee;

    /** 优惠劵名称 */
	@ApiModelProperty("优惠劵名称")
	protected String couponName;

    /** 优惠劵模板ID */
	@ApiModelProperty("优惠劵模板ID")
	protected String couponTemplateId;

    /** 优惠券优惠金额 */
	@ApiModelProperty("优惠券优惠金额")
	protected BigDecimal couponDiscountFee;

    /** 结算价 */
	@ApiModelProperty("结算价")
	protected BigDecimal skuSettlementPrice;

    /** 商品积分 */
	@ApiModelProperty("商品积分")
	protected Integer skuPoints;

    /** 商品图片地址 */
	@ApiModelProperty("商品图片地址")
	protected String skuMainImages;

    /** 单位，待确定（商品模块） */
	@ApiModelProperty("单位，待确定（商品模块）")
	protected Integer skuUnit;

    /** SKU规格属性 JSON存储 */
	@ApiModelProperty("SKU规格属性 JSON存储")
	protected String skuAttrs;

    /** 总金额（amount = price * num) */
	@ApiModelProperty("总金额（amount = price * num)")
	protected BigDecimal totalAmount;

    /** 总积分 */
	@ApiModelProperty("总积分")
	protected Integer totalPoints;

    /** 商圈ID */
	@ApiModelProperty("商圈ID")
	protected String busdId;

    /** 商家ID */
	@ApiModelProperty("商家ID")
	protected String merchantId;

    /** 会员ID */
	@ApiModelProperty("会员ID")
	protected String memberId;

    /** 是否已提货 */
	@ApiModelProperty("是否已提货")
	protected Boolean pickup;

    /** 提货开始时间（为空表示无限制） */
	@ApiModelProperty("提货开始时间（为空表示无限制）")
	protected LocalDateTime pickupStartTime;

    /** 提货超时时间（为空表示永不超时） */
	@ApiModelProperty("提货超时时间（为空表示永不超时）")
	protected LocalDateTime pickupExpireTime;

    /** 提货时间 */
	@ApiModelProperty("提货时间")
	protected LocalDateTime pickupTime;

    /** 商户用户ID（用户自提时由商户用户确认） */
	@ApiModelProperty("商户用户ID（用户自提时由商户用户确认）")
	protected String merchantUserId;

	/**
	 * 构造一个空单品（只有需要自提的商品才拆成单品）实体对象
	 */
	public GoodsEntity(){
		super();
	}

	/**
	 * 依据其它对象的信息构造一个单品（只有需要自提的商品才拆成单品）实体对象
	 * 
	 * @param other 其它对象
	 */
	public GoodsEntity(GoodsEntity other){
		super();
     	this.id = other.id;
     	this.orderNo = other.orderNo;
     	this.spuId = other.spuId;
     	this.skuId = other.skuId;
     	this.skuTitle = other.skuTitle;
     	this.skuPrice = other.skuPrice;
     	this.skuOriginalPrice = other.skuOriginalPrice;
     	this.skuDiscountPrice = other.skuDiscountPrice;
     	this.discountAmount = other.discountAmount;
     	this.merchantDivideFee = other.merchantDivideFee;
     	this.groupDivideFee = other.groupDivideFee;
     	this.couponName = other.couponName;
     	this.couponTemplateId = other.couponTemplateId;
     	this.couponDiscountFee = other.couponDiscountFee;
     	this.skuSettlementPrice = other.skuSettlementPrice;
     	this.skuPoints = other.skuPoints;
     	this.skuMainImages = other.skuMainImages;
     	this.skuUnit = other.skuUnit;
     	this.skuAttrs = other.skuAttrs;
     	this.totalAmount = other.totalAmount;
     	this.totalPoints = other.totalPoints;
     	this.busdId = other.busdId;
     	this.merchantId = other.merchantId;
     	this.memberId = other.memberId;
     	this.pickup = other.pickup;
     	this.pickupStartTime = other.pickupStartTime;
     	this.pickupExpireTime = other.pickupExpireTime;
     	this.pickupTime = other.pickupTime;
     	this.merchantUserId = other.merchantUserId;
	}


	/**
	 * 获取单品ID
	 * 
	 * @return id 单品ID
	 */
	public String getId() {
		return id;
	}
  	
	/**
	 * 设置单品ID
	 * 
	 * @param id 单品ID
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取订单号
	 * 
	 * @return orderNo 订单号
	 */
	public String getOrderNo() {
		return orderNo;
	}
  	
	/**
	 * 设置订单号
	 * 
	 * @param orderNo 订单号
	 */
	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}

	/**
	 * 获取SPUID
	 * 
	 * @return spuId SPUID
	 */
	public String getSpuId() {
		return spuId;
	}
  	
	/**
	 * 设置SPUID
	 * 
	 * @param spuId SPUID
	 */
	public void setSpuId(String spuId) {
		this.spuId = spuId;
	}

	/**
	 * 获取商品ID
	 * 
	 * @return skuId 商品ID
	 */
	public String getSkuId() {
		return skuId;
	}
  	
	/**
	 * 设置商品ID
	 * 
	 * @param skuId 商品ID
	 */
	public void setSkuId(String skuId) {
		this.skuId = skuId;
	}

	/**
	 * 获取商品名
	 * 
	 * @return skuTitle 商品名
	 */
	public String getSkuTitle() {
		return skuTitle;
	}
  	
	/**
	 * 设置商品名
	 * 
	 * @param skuTitle 商品名
	 */
	public void setSkuTitle(String skuTitle) {
		this.skuTitle = skuTitle;
	}

	/**
	 * 获取商品单价
	 * 
	 * @return skuPrice 商品单价
	 */
	public BigDecimal getSkuPrice() {
		return skuPrice;
	}
  	
	/**
	 * 设置商品单价
	 * 
	 * @param skuPrice 商品单价
	 */
	public void setSkuPrice(BigDecimal skuPrice) {
		this.skuPrice = skuPrice;
	}

	/**
	 * 获取原价
	 * 
	 * @return skuOriginalPrice 原价
	 */
	public BigDecimal getSkuOriginalPrice() {
		return skuOriginalPrice;
	}
  	
	/**
	 * 设置原价
	 * 
	 * @param skuOriginalPrice 原价
	 */
	public void setSkuOriginalPrice(BigDecimal skuOriginalPrice) {
		this.skuOriginalPrice = skuOriginalPrice;
	}

	/**
	 * 获取折扣价（用这个价格计算）
	 * 
	 * @return skuDiscountPrice 折扣价（用这个价格计算）
	 */
	public BigDecimal getSkuDiscountPrice() {
		return skuDiscountPrice;
	}
  	
	/**
	 * 设置折扣价（用这个价格计算）
	 * 
	 * @param skuDiscountPrice 折扣价（用这个价格计算）
	 */
	public void setSkuDiscountPrice(BigDecimal skuDiscountPrice) {
		this.skuDiscountPrice = skuDiscountPrice;
	}

	/**
	 * 获取优惠金额
	 * 
	 * @return discountAmount 优惠金额
	 */
	public BigDecimal getDiscountAmount() {
		return discountAmount;
	}
  	
	/**
	 * 设置优惠金额
	 * 
	 * @param discountAmount 优惠金额
	 */
	public void setDiscountAmount(BigDecimal discountAmount) {
		this.discountAmount = discountAmount;
	}

	/**
	 * 获取商户分摊金额
	 * 
	 * @return merchantDivideFee 商户分摊金额
	 */
	public BigDecimal getMerchantDivideFee() {
		return merchantDivideFee;
	}
  	
	/**
	 * 设置商户分摊金额
	 * 
	 * @param merchantDivideFee 商户分摊金额
	 */
	public void setMerchantDivideFee(BigDecimal merchantDivideFee) {
		this.merchantDivideFee = merchantDivideFee;
	}

	/**
	 * 获取平台分摊金额
	 * 
	 * @return groupDivideFee 平台分摊金额
	 */
	public BigDecimal getGroupDivideFee() {
		return groupDivideFee;
	}
  	
	/**
	 * 设置平台分摊金额
	 * 
	 * @param groupDivideFee 平台分摊金额
	 */
	public void setGroupDivideFee(BigDecimal groupDivideFee) {
		this.groupDivideFee = groupDivideFee;
	}

	/**
	 * 获取优惠劵名称
	 * 
	 * @return couponName 优惠劵名称
	 */
	public String getCouponName() {
		return couponName;
	}
  	
	/**
	 * 设置优惠劵名称
	 * 
	 * @param couponName 优惠劵名称
	 */
	public void setCouponName(String couponName) {
		this.couponName = couponName;
	}

	/**
	 * 获取优惠劵模板ID
	 * 
	 * @return couponTemplateId 优惠劵模板ID
	 */
	public String getCouponTemplateId() {
		return couponTemplateId;
	}
  	
	/**
	 * 设置优惠劵模板ID
	 * 
	 * @param couponTemplateId 优惠劵模板ID
	 */
	public void setCouponTemplateId(String couponTemplateId) {
		this.couponTemplateId = couponTemplateId;
	}

	/**
	 * 获取优惠券优惠金额
	 * 
	 * @return couponDiscountFee 优惠券优惠金额
	 */
	public BigDecimal getCouponDiscountFee() {
		return couponDiscountFee;
	}
  	
	/**
	 * 设置优惠券优惠金额
	 * 
	 * @param couponDiscountFee 优惠券优惠金额
	 */
	public void setCouponDiscountFee(BigDecimal couponDiscountFee) {
		this.couponDiscountFee = couponDiscountFee;
	}

	/**
	 * 获取结算价
	 * 
	 * @return skuSettlementPrice 结算价
	 */
	public BigDecimal getSkuSettlementPrice() {
		return skuSettlementPrice;
	}
  	
	/**
	 * 设置结算价
	 * 
	 * @param skuSettlementPrice 结算价
	 */
	public void setSkuSettlementPrice(BigDecimal skuSettlementPrice) {
		this.skuSettlementPrice = skuSettlementPrice;
	}

	/**
	 * 获取商品积分
	 * 
	 * @return skuPoints 商品积分
	 */
	public Integer getSkuPoints() {
		return skuPoints;
	}
  	
	/**
	 * 设置商品积分
	 * 
	 * @param skuPoints 商品积分
	 */
	public void setSkuPoints(Integer skuPoints) {
		this.skuPoints = skuPoints;
	}

	/**
	 * 获取商品图片地址
	 * 
	 * @return skuMainImages 商品图片地址
	 */
	public String getSkuMainImages() {
		return skuMainImages;
	}
  	
	/**
	 * 设置商品图片地址
	 * 
	 * @param skuMainImages 商品图片地址
	 */
	public void setSkuMainImages(String skuMainImages) {
		this.skuMainImages = skuMainImages;
	}

	/**
	 * 获取单位，待确定（商品模块）
	 * 
	 * @return skuUnit 单位，待确定（商品模块）
	 */
	public Integer getSkuUnit() {
		return skuUnit;
	}
  	
	/**
	 * 设置单位，待确定（商品模块）
	 * 
	 * @param skuUnit 单位，待确定（商品模块）
	 */
	public void setSkuUnit(Integer skuUnit) {
		this.skuUnit = skuUnit;
	}

	/**
	 * 获取SKU规格属性 JSON存储
	 * 
	 * @return skuAttrs SKU规格属性 JSON存储
	 */
	public String getSkuAttrs() {
		return skuAttrs;
	}
  	
	/**
	 * 设置SKU规格属性 JSON存储
	 * 
	 * @param skuAttrs SKU规格属性 JSON存储
	 */
	public void setSkuAttrs(String skuAttrs) {
		this.skuAttrs = skuAttrs;
	}

	/**
	 * 获取总金额（amount = price * num)
	 * 
	 * @return totalAmount 总金额（amount = price * num)
	 */
	public BigDecimal getTotalAmount() {
		return totalAmount;
	}
  	
	/**
	 * 设置总金额（amount = price * num)
	 * 
	 * @param totalAmount 总金额（amount = price * num)
	 */
	public void setTotalAmount(BigDecimal totalAmount) {
		this.totalAmount = totalAmount;
	}

	/**
	 * 获取总积分
	 * 
	 * @return totalPoints 总积分
	 */
	public Integer getTotalPoints() {
		return totalPoints;
	}
  	
	/**
	 * 设置总积分
	 * 
	 * @param totalPoints 总积分
	 */
	public void setTotalPoints(Integer totalPoints) {
		this.totalPoints = totalPoints;
	}

	/**
	 * 获取商圈ID
	 * 
	 * @return busdId 商圈ID
	 */
	public String getBusdId() {
		return busdId;
	}
  	
	/**
	 * 设置商圈ID
	 * 
	 * @param busdId 商圈ID
	 */
	public void setBusdId(String busdId) {
		this.busdId = busdId;
	}

	/**
	 * 获取商家ID
	 * 
	 * @return merchantId 商家ID
	 */
	public String getMerchantId() {
		return merchantId;
	}
  	
	/**
	 * 设置商家ID
	 * 
	 * @param merchantId 商家ID
	 */
	public void setMerchantId(String merchantId) {
		this.merchantId = merchantId;
	}

	/**
	 * 获取会员ID
	 * 
	 * @return memberId 会员ID
	 */
	public String getMemberId() {
		return memberId;
	}
  	
	/**
	 * 设置会员ID
	 * 
	 * @param memberId 会员ID
	 */
	public void setMemberId(String memberId) {
		this.memberId = memberId;
	}

	/**
	 * 获取是否已提货
	 * 
	 * @return pickup 是否已提货
	 */
	public Boolean getPickup() {
		return pickup;
	}
  	
	/**
	 * 设置是否已提货
	 * 
	 * @param pickup 是否已提货
	 */
	public void setPickup(Boolean pickup) {
		this.pickup = pickup;
	}

	/**
	 * 获取提货开始时间（为空表示无限制）
	 * 
	 * @return pickupStartTime 提货开始时间（为空表示无限制）
	 */
	public LocalDateTime getPickupStartTime() {
		return pickupStartTime;
	}
  	
	/**
	 * 设置提货开始时间（为空表示无限制）
	 * 
	 * @param pickupStartTime 提货开始时间（为空表示无限制）
	 */
	public void setPickupStartTime(LocalDateTime pickupStartTime) {
		this.pickupStartTime = pickupStartTime;
	}

	/**
	 * 获取提货超时时间（为空表示永不超时）
	 * 
	 * @return pickupExpireTime 提货超时时间（为空表示永不超时）
	 */
	public LocalDateTime getPickupExpireTime() {
		return pickupExpireTime;
	}
  	
	/**
	 * 设置提货超时时间（为空表示永不超时）
	 * 
	 * @param pickupExpireTime 提货超时时间（为空表示永不超时）
	 */
	public void setPickupExpireTime(LocalDateTime pickupExpireTime) {
		this.pickupExpireTime = pickupExpireTime;
	}

	/**
	 * 获取提货时间
	 * 
	 * @return pickupTime 提货时间
	 */
	public LocalDateTime getPickupTime() {
		return pickupTime;
	}
  	
	/**
	 * 设置提货时间
	 * 
	 * @param pickupTime 提货时间
	 */
	public void setPickupTime(LocalDateTime pickupTime) {
		this.pickupTime = pickupTime;
	}

	/**
	 * 获取商户用户ID（用户自提时由商户用户确认）
	 * 
	 * @return merchantUserId 商户用户ID（用户自提时由商户用户确认）
	 */
	public String getMerchantUserId() {
		return merchantUserId;
	}
  	
	/**
	 * 设置商户用户ID（用户自提时由商户用户确认）
	 * 
	 * @param merchantUserId 商户用户ID（用户自提时由商户用户确认）
	 */
	public void setMerchantUserId(String merchantUserId) {
		this.merchantUserId = merchantUserId;
	}

	/**
	 * 复制对象
	 * 
	 * @return 复制后的新实体对象
	 */
	public GoodsEntity copy() {
		return new GoodsEntity(this);
	}

    /** 单品ID */
	public static final String COL_ID = "id";

    /** 订单号 */
	public static final String COL_ORDER_NO = "order_no";

    /** SPUID */
	public static final String COL_SPU_ID = "spu_id";

    /** 商品ID */
	public static final String COL_SKU_ID = "sku_id";

    /** 商品名 */
	public static final String COL_SKU_TITLE = "sku_title";

    /** 商品单价 */
	public static final String COL_SKU_PRICE = "sku_price";

    /** 原价 */
	public static final String COL_SKU_ORIGINAL_PRICE = "sku_original_price";

    /** 折扣价（用这个价格计算） */
	public static final String COL_SKU_DISCOUNT_PRICE = "sku_discount_price";

    /** 优惠金额 */
	public static final String COL_DISCOUNT_AMOUNT = "discount_amount";

    /** 商户分摊金额 */
	public static final String COL_MERCHANT_DIVIDE_FEE = "merchant_divide_fee";

    /** 平台分摊金额 */
	public static final String COL_GROUP_DIVIDE_FEE = "group_divide_fee";

    /** 优惠劵名称 */
	public static final String COL_COUPON_NAME = "coupon_name";

    /** 优惠劵模板ID */
	public static final String COL_COUPON_TEMPLATE_ID = "coupon_template_id";

    /** 优惠券优惠金额 */
	public static final String COL_COUPON_DISCOUNT_FEE = "coupon_discount_fee";

    /** 结算价 */
	public static final String COL_SKU_SETTLEMENT_PRICE = "sku_settlement_price";

    /** 商品积分 */
	public static final String COL_SKU_POINTS = "sku_points";

    /** 商品图片地址 */
	public static final String COL_SKU_MAIN_IMAGES = "sku_main_images";

    /** 单位，待确定（商品模块） */
	public static final String COL_SKU_UNIT = "sku_unit";

    /** SKU规格属性 JSON存储 */
	public static final String COL_SKU_ATTRS = "sku_attrs";

    /** 总金额（amount = price * num) */
	public static final String COL_TOTAL_AMOUNT = "total_amount";

    /** 总积分 */
	public static final String COL_TOTAL_POINTS = "total_points";

    /** 商圈ID */
	public static final String COL_BUSD_ID = "busd_id";

    /** 商家ID */
	public static final String COL_MERCHANT_ID = "merchant_id";

    /** 会员ID */
	public static final String COL_MEMBER_ID = "member_id";

    /** 是否已提货 */
	public static final String COL_PICKUP = "pickup";

    /** 提货开始时间（为空表示无限制） */
	public static final String COL_PICKUP_START_TIME = "pickup_start_time";

    /** 提货超时时间（为空表示永不超时） */
	public static final String COL_PICKUP_EXPIRE_TIME = "pickup_expire_time";

    /** 提货时间 */
	public static final String COL_PICKUP_TIME = "pickup_time";

    /** 商户用户ID（用户自提时由商户用户确认） */
	public static final String COL_MERCHANT_USER_ID = "merchant_user_id";
}
